package poo.agendina;

import java.util.*;

public class AgendinaLL extends AgendinaAstratta {

	private LinkedList<Nominativo> tabella = new LinkedList<>();

	public Iterator<Nominativo> iterator() {
		return tabella.iterator();
	}

	@Override
	public void svuota() {
		tabella.clear();
	}

	@Override
	public int size() {
		return tabella.size();
	}

	@Override
	public void aggiungi(Nominativo n) {
		// aggiunge n in ordine, evitando le omonimie,se n e' gia' presente lo
		// si rimuove
		ListIterator<Nominativo> lit = tabella.listIterator();
		boolean flag = false;
		while (lit.hasNext()) {
			Nominativo y = lit.next();
			if (y.compareTo(n) == 0) {
				lit.set(n);
				flag = true;
			} else if (y.compareTo(n) > 0) {
				lit.previous();
				lit.add(n);
				flag = true;
			}
		}// while
		if (!flag)
			lit.add(n);
	}// aggiungi
}
